/**
 * <pre>
 * 紫光软件系统有限公司广电事业部
 * Copyright (C): 2011
 * 
 * 文件名称：
 * com.unis.iptv.common.utils.RegexUtil.java
 * 
 * 文件描述: 
 * TODO
 * 正则表达式工具类
 * Notes:
 * 修改历史(作者/日期/改动描述):
 * 杨飞宇/2012-5-21/初始化版本。
 * </pre>
 */
package com.unis.iptv.common.utils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * @date 2012-5-21
 * @author 杨飞宇
 */
public final class RegexUtil {
	private static Log iptvCourse = LogFactory.getLog("iptvCourse");
	
	/**
	 * @author 杨飞宇 @2012-5-21
	 * @param regex
	 *            正则表达式
	 * @param input
	 *            内容（从内容中找出匹配表达式的字符串）
	 * @return 返回group(1)
	 */
	public static String compileString(String regex, CharSequence input) {
		Pattern pattern = Pattern.compile(regex);
		Matcher matcher = pattern.matcher(input);
		if (matcher.find())
			return matcher.group(1);
		return null;
	}
	
	/**
	 * @author 杨飞宇 @2012-5-21
	 * @param regex
	 *            正则表达式
	 * @param input
	 *            内容（从内容中找出匹配表达式的字符串）
	 * @return 返回所有的group数组
	 */
	public static String[] compileStringArray(String regex, CharSequence input) {
		Pattern pattern = Pattern.compile(regex);
		Matcher matcher = pattern.matcher(input);
		if (matcher.find()) {
			String results[] = new String[matcher.groupCount()];
			for (int i = 0; i < results.length; i++) {
				results[i] = matcher.group(i + 1);
			}
			return results;
		}
		return null;
	}
	
	public static void main(String[] args) {
		String aa = "window.location = \"frameset_judger.jsp\";132:8080/iptvepg/function/index.jsp";
		String regex = "window\\.locati(.)n\\s*=\\s*[\"'](.*)[\"']";
		Pattern pattern = Pattern.compile(regex);
		Matcher matcher = pattern.matcher(aa);
		while (matcher.find()) {
			// iptvCourse.info(matcher.end());
			// iptvCourse.info(matcher.groupCount());
			String aaa = matcher.group();
			matcher.reset();
			matcher.reset("n\\s*=\\s*[\"'](.*)[\"']");
			iptvCourse.info(aaa);
		}
		// iptvCourse.info(compileStringArray(regex, aa));
	}
}
